// Generated automatically from org.openhealthtools.mdht.uml.cda.ClinicalDocument for testing purposes

package org.openhealthtools.mdht.uml.cda;

import java.util.Map;
import org.eclipse.emf.common.util.DiagnosticChain;
import org.eclipse.emf.common.util.EList;
import org.openhealthtools.mdht.uml.cda.Authenticator;
import org.openhealthtools.mdht.uml.cda.Author;
import org.openhealthtools.mdht.uml.cda.Authorization;
import org.openhealthtools.mdht.uml.cda.Component1;
import org.openhealthtools.mdht.uml.cda.Component2;
import org.openhealthtools.mdht.uml.cda.Custodian;
import org.openhealthtools.mdht.uml.cda.DataEnterer;
import org.openhealthtools.mdht.uml.cda.DocumentationOf;
import org.openhealthtools.mdht.uml.cda.InFulfillmentOf;
import org.openhealthtools.mdht.uml.cda.Informant12;
import org.openhealthtools.mdht.uml.cda.InformationRecipient;
import org.openhealthtools.mdht.uml.cda.InfrastructureRootTypeId;
import org.openhealthtools.mdht.uml.cda.LegalAuthenticator;
import org.openhealthtools.mdht.uml.cda.Participant1;
import org.openhealthtools.mdht.uml.cda.Patient;
import org.openhealthtools.mdht.uml.cda.PatientRole;
import org.openhealthtools.mdht.uml.cda.RecordTarget;
import org.openhealthtools.mdht.uml.cda.RelatedDocument;
import org.openhealthtools.mdht.uml.cda.Section;
import org.openhealthtools.mdht.uml.cda.StructuredBody;
import org.openhealthtools.mdht.uml.hl7.datatypes.CE;
import org.openhealthtools.mdht.uml.hl7.datatypes.CS;
import org.openhealthtools.mdht.uml.hl7.datatypes.II;
import org.openhealthtools.mdht.uml.hl7.datatypes.INT;
import org.openhealthtools.mdht.uml.hl7.datatypes.ST;
import org.openhealthtools.mdht.uml.hl7.datatypes.TS;
import org.openhealthtools.mdht.uml.hl7.vocab.ActClinicalDocument;
import org.openhealthtools.mdht.uml.hl7.vocab.ActMood;
import org.openhealthtools.mdht.uml.hl7.vocab.NullFlavor;

public interface ClinicalDocument extends org.openhealthtools.mdht.uml.hl7.rim.Act
{
    ActClinicalDocument getClassCode();
    ActMood getMoodCode();
    CE getCode();
    CE getConfidentialityCode();
    CS getLanguageCode();
    Component1 getComponentOf();
    Component2 getComponent();
    Custodian getCustodian();
    DataEnterer getDataEnterer();
    EList<Authenticator> getAuthenticators();
    EList<Author> getAuthors();
    EList<Authorization> getAuthorizations();
    EList<CS> getRealmCodes();
    EList<DocumentationOf> getDocumentationOfs();
    EList<II> getTemplateIds();
    EList<InFulfillmentOf> getInFulfillmentOfs();
    EList<Informant12> getInformants();
    EList<InformationRecipient> getInformationRecipients();
    EList<Participant1> getParticipants();
    EList<Patient> getPatients();
    EList<PatientRole> getPatientRoles();
    EList<RecordTarget> getRecordTargets();
    EList<RelatedDocument> getRelatedDocuments();
    EList<Section> getAllSections();
    EList<Section> getSections();
    II getId();
    II getSetId();
    INT getVersionNumber();
    InfrastructureRootTypeId getTypeId();
    LegalAuthenticator getLegalAuthenticator();
    NullFlavor getNullFlavor();
    ST getTitle();
    TS getCopyTime();
    TS getEffectiveTime();
    boolean hasCode(String p0, String p1, String p2);
    boolean hasSectionTemplate(String p0);
    boolean hasTemplateId(String p0);
    boolean isSetClassCode();
    boolean isSetMoodCode();
    boolean isSetNullFlavor();
    boolean validateClassCode(DiagnosticChain p0, Map<Object, Object> p1);
    boolean validateMoodCode(DiagnosticChain p0, Map<Object, Object> p1);
    void addPatient(Patient p0);
    void addPatientRole(PatientRole p0);
    void addSection(Section p0);
    void setClassCode(ActClinicalDocument p0);
    void setCode(CE p0);
    void setComponent(Component2 p0);
    void setComponentOf(Component1 p0);
    void setConfidentialityCode(CE p0);
    void setCopyTime(TS p0);
    void setCustodian(Custodian p0);
    void setDataEnterer(DataEnterer p0);
    void setEffectiveTime(TS p0);
    void setId(II p0);
    void setLanguageCode(CS p0);
    void setLegalAuthenticator(LegalAuthenticator p0);
    void setMoodCode(ActMood p0);
    void setNullFlavor(NullFlavor p0);
    void setSetId(II p0);
    void setStructuredBody(StructuredBody p0);
    void setTitle(ST p0);
    void setTypeId(InfrastructureRootTypeId p0);
    void setVersionNumber(INT p0);
    void unsetClassCode();
    void unsetMoodCode();
    void unsetNullFlavor();
}
